package codigo;

import codigo.ObjetoPosicionable;
import desa.Movimiento;
import desa.Posicion;


public class ObjetoMovil extends ObjetoPosicionable {
	private Movimiento movimiento;
	String direccion;
	int unidadDesplazamiento;
	
	private Posicion posicion;

	
	public ObjetoMovil (Posicion posicion, int unidadDesplazamiento) {
		this.unidadDesplazamiento = unidadDesplazamiento;
		this.posicion = posicion;
		movimiento = new Movimiento(posicion, unidadDesplazamiento);
	}
	
	
	public void setDireccion (String direccion){
		this.direccion = direccion;
	}
	
	public String getDireccion(){
		return direccion;
	}
	
// Se mueve en unidad de desplazamiento

	private Posicion generarSiguientePosicion() {
		Posicion posicionSiguiente = new Posicion (0, 0);
		
		if (direccion == "ARRIBA")
			posicionSiguiente = movimiento.arriba(posicion);
		if (direccion == "ABAJO")
			posicionSiguiente = movimiento.abajo(posicion);
		if (direccion == "IZQUIERDA")
			posicionSiguiente = movimiento.izquierda(posicion);
		if (direccion == "DERECHA")				
			posicionSiguiente = movimiento.derecha(posicion);
		if (direccion == "NULO")
			posicionSiguiente = posicion;
		return posicionSiguiente;
		
	}

	
	public Posicion getSiguientePosicion(){
		return generarSiguientePosicion();
	}
	
	public void avanzar() {
		posicion = generarSiguientePosicion();
	}

	public Posicion getPosicion() {
		return posicion;
	}
}

